


Computes angle functions pi_n(cos(theta)) and tau_n(cos(theta)) (for |m|=1) and p_n(cos(theta)) and t_n(cos(theta)) (for m=0) for n=1..nNmax
Parameters:
- nNmax: scalar integer [1 x 1]
- theta: column vector [T x 1]
with theta (in radians)
all theta's must be between 0 and pi
- sM0only: optional string
if sM0only='m0only', then only p_n and t_n are computed
Returns: structure with fields:
- pin: matrix [T x nNmax] with pi_n(cos(theta)) n=1..nNmax
- taun: matrix [T x nNmax] with tau_n(cos(theta)) n=1..nNmax
- pn: matrix [T x nNmax] with p_n(cos(theta)) n=1..nNmax
- tn: matrix [T x nNmax] with t_n(cos(theta)) n=1..nNmax
This file is part of the SPlaC v1.0 package (copyright 2008)
Check the README file for further information



0001 if size(theta,2)>1 0002 disp 'Warning: theta must be a column vector in DipPinTaunPnTn...'; 0003 end 0004 if nargin<3, sM0only='no'; end 0005 0006 if ~strcmpi(sM0only,'m0only') 0007 % Get first pin and tau from the Pwe function 0008 stPinTaunPnTn=PwePinTaun(nNmax,theta); 0009 % the structure contain pin and taun 0010 end 0011 0012 % Now get p_n and t_n by recurrence 0013 nrows=length(theta); 0014 muc=cos(theta); % column [T x 1] 0015 mus=sin(theta); % column [T x 1] 0016 0017 % Initialize recurrence p_0=1, p_1=muc, t_0=0, t_1=-mus 0018 % pnm1 contains p_{n-1} n=1..nNmax+1, same for tnm1 0019 pnm1=ones(nrows,nNmax+1); % [T x N+1] 0020 pnm1(:,2)=muc; % [T x 1] 0021 tnm1=zeros(nrows,nNmax+1); % [T x N+1] 0022 tnm1(:,2)=-mus; % [T x 1] 0023 0024 % Get p_2 to p_nNmax and t_2 to t_nNmax by recurrence 0025 % p_n is pnm1(:,n+1), t_n is tnm1(:,n+1) 0026 for n=2:(nNmax) 0027 pnm1(:,n+1)=(2*n-1)/(n)*muc.*pnm1(:,n)-(n-1)/n*pnm1(:,n-1); 0028 tnm1(:,n+1)=muc.*tnm1(:,n)-n*mus.*pnm1(:,n); 0029 end; 0030 0031 % return p_n and t_n matrices (except n=0) 0032 stPinTaunPnTn.pn=pnm1(:,2:(nNmax+1)); 0033 stPinTaunPnTn.tn=tnm1(:,2:(nNmax+1)); 0034